package data;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import util.ConnectionManager;
import domain.EmpresaPublica;

public class JDBCEmpresaPublicaDao implements IEmpresaPublicaDao {

	public boolean login(String cif, String pass) {
		ConnectionManager cm = ConnectionManager.getInstance();
		Connection con = cm.checkOut();
		PreparedStatement sentencia = null;
		ResultSet resulset = null;
		String query = "SELECT * FROM EMPRESAPUBLICA WHERE CIF='"
				+ cif + "' AND PASS='"
				+ pass + "'";
		
		//System.out.println(query);
		
		boolean ret = false;
		try {
			sentencia = (PreparedStatement) con.prepareStatement(query);
			
			resulset = sentencia.executeQuery();
			ret = resulset.next();
		} catch (SQLException e) {
			System.out.println("Se ha producido un error en la base de datos en el login de empresa publica");
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("Se ha producido un error en el login");
			//e.printStackTrace();
		} finally {
			try {
				resulset.close();
			} catch (SQLException e) {
				System.out.println("Fallo al cerrar el resulset login");
				//e.printStackTrace();
			}
			try {
				sentencia.close();
			} catch (SQLException e) {
				System.out.println("Fallo al cerrar la sentencia login");
				//e.printStackTrace();
			}
			cm.checkIn(con);
		}

		return ret;
	}

	public EmpresaPublica getEmpresaPublica(String cif, String pass) {
		ConnectionManager cm = ConnectionManager.getInstance();
		Connection con = cm.checkOut();
		PreparedStatement sentencia = null;
		ResultSet resulset = null;
		String query = "SELECT * FROM EMPRESAPUBLICA WHERE CIF='"
				+ cif + "' AND PASS='"
				+ pass + "'";
		
		//System.out.println(query);
		
		EmpresaPublica ret = new EmpresaPublica();
		try {
			sentencia = (PreparedStatement) con.prepareStatement(query);
			
			resulset = sentencia.executeQuery();
			if(resulset.next()){
				ret.setCif(resulset.getString("CIF"));
				ret.setId(resulset.getInt("ID"));
				ret.setNombre(resulset.getString("NOMBRE"));
				ret.setDescripcion(resulset.getString("DESCRIPCION"));
				ret.setPass(resulset.getString("PASS"));
				
			}
		
		} catch (SQLException e) {
			System.out.println("Se ha producido un error en la base de datos en el login de empresa publica");
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println("Se ha producido un error en el login");
			//e.printStackTrace();
		} finally {
			try {
				resulset.close();
			} catch (SQLException e) {
				System.out.println("Fallo al cerrar el resulset login");
				//e.printStackTrace();
			}
			try {
				sentencia.close();
			} catch (SQLException e) {
				System.out.println("Fallo al cerrar la sentencia login");
				//e.printStackTrace();
			}
			cm.checkIn(con);
		}

		return ret;
	}

}
